﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.SessionState;
using System.Web.UI.WebControls;
using vudu.Logica.Fachada;
using vudu.Logica.Clases;
using vudu.Presentacion.Contrato.VU_05_Gestionar_Practicas_por_Materia;
using vudu.Presentacion.Presentador.VU_05_Gestionar_Practicas_por_Materia;
using System.Data;

namespace vudu.Presentacion.Vista.VU_05_Gestionar_Practicas_por_Materia
{
    public partial class ConsultarSeccionPractica : System.Web.UI.Page, IContratoConsultarPractica
    {

        private PresentadorConsultarPractica _presentador;

        //Esta funcion es la que se carga al iniciar la pagina y donde se establece si el usuario
        //que entro en ella es valido para usar su contenido.
        private void Page_Init(object sender, EventArgs e)
        {
            _presentador = new PresentadorConsultarPractica(this);
            if (!IsPostBack)
            { _presentador.LoadDdlMateria(); }
        }


        //Aca se maneja el cambio de pagina del GridView1
        //El gridView1 es el que muestra todas las practica de la seccion seleccionada
        protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridView1.PageIndex = e.NewPageIndex;
            _presentador.LoadGridView();

        }

        //Esta funcion se activa al seleccionar alguna tupla del gridView 1
        //Se selecciona el id de la practica seleccionada para poder cargar el horario
        //de el item seleccionado y cargar un GridView2 con esos datos.
        protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            //Aqui voy cuando selecciono
            _presentador.ConsultarPractica(Convert.ToInt32(miGridView.SelectedRow.Cells[4].Text));
            miGridView.Visible = false;
            btnBackPractica.Visible = true;
            ddlMateria.Enabled = false;
            ddlSeccTeoria.Enabled = false;
            _presentador.LoadGridView2();

        }

        // aca Se carga el DopDownList de las materias que tienen practica ya creadas
        protected void ddlMateria_onselectedindexchanged(object sender, EventArgs e)
        {
            labelStatus.Text = "";
            _presentador.UnLoadDdlGeneric(ddlSeccTeoria);
            _presentador.LoadDdlSeccTeoria();
            _presentador.UnLoadGridView();
        }

        //en otro DropDownList se cargan las practicas de la materia previamente seleccionada
        protected void ddlSeccTeoria_onselectedindexchanged(object sender, EventArgs e)
        {
            _presentador.UnLoadGridView();
            _presentador.LoadGridView();
        }

        //Este boton nos regresa al GridView1 para poder seghir consultando diferentes practicas
        protected void btnBackPractica_Click(object sender, EventArgs e)
        { 
            if (miGridView2.Visible)
            {
                miGridView2.Visible = false;
                ddlMateria.Enabled = true;
                ddlSeccTeoria.Enabled = true;
                miGridView.Visible = true;
            }
            else
            { Response.Redirect("../HomePages/HomeEscuela.aspx"); }
        }




        #region GUIElements


        public Label LabelEscuela
        {
            get { return labelEscuela; }
        }

        public Label LabelStatus
        {
            get { return labelStatus; }
        }

        public Label LabelOMateria
        {
            get { return labelOMateria; }
        }

        public Label LabelMateria
        {
            get { return labelMateria; }
        }

        public DropDownList DdlMateria
        {
            get { return ddlMateria; }
        }

        public Label LabelOSeccTeoria
        {
            get { return labelOSeccTeoria; }
        }

        public Label LabelSeccTeoria
        {
            get { return labelSeccTeoria; }
        }

        public DropDownList DdlSeccTeoria
        {
            get { return ddlSeccTeoria; }
        }

        public GridView miGridView
        {

            get { return GridView1; }
        }

        public GridView miGridView2
        {

            get { return GridView2; }
        }

        public Button BtnBackPractica { get { return btnBackPractica; } }

        public HttpSessionState Sesion { get { return Session; } }

        public void Redirect(string ruta) { Response.Redirect(ruta); }

        #endregion GUIElements;

    }
}